package zengqiang.day03

fun main(args: Array<String>) {
    var i=OutClass.InnerClass()
    var ii=OutClass().InnerClass1()
    ii.test()
}

/**
 * 嵌套类：
 *      嵌套类是静态的，所以不能使用外部类变量
 *      OutClass.InnerClass() 从这种使用方式可以看出是静态的
 */
class OutClass{
    var name="外部"
    //嵌套类
    class InnerClass{
        fun test(){
//            println(name) 报错，嵌套类不能使用外部类变量等
        }
    }
    //内部类
    inner class InnerClass1(){
        var name="内部"
        fun test(){
            //分别是使用内部类的属性和使用外部类的属性
            println("${this.name}  ${this@OutClass.name}")//内部  外部
        }
    }

}